package com.kly.sc.api.application.enums;

/**
 * 消息类型，接受内置消息类型（见消息类型概述）或自定义消息的消息类型值。

 * 高清语音消息	RC:HQVCMsg
 * 图片消息	    RC:ImgMsg
 * GIF 图片消息	RC:GIFMsg
 * 图文消息	    RC:ImgTextMsg
 * 文件消息	    RC:FileMsg
 * 位置消息	    RC:LBSMsg
 * 小视频消息	    RC:SightMsg
 * 引用消息	    RC:ReferenceMsg
 * 合并转发消息	RC:CombineMsg
 */
public enum MsgType {

    TxtMsg("RC:TxtMsg", "TxtMsg", "文字消息"),
    HQVCMsg("RC:HQVCMsg", "HQVCMsg", "高清语音消息"),
    ImgMsg("RC:ImgMsg", "ImgMsg", "图片消息"),
    GIFMsg("RC:GIFMsg", "GIFMsg", "GIF 图片消息"),
    ImgTextMsg("RC:ImgTextMsg", "ImgTextMsg", "文件消息"),
    FileMsg("RC:FileMsg", "FileMsg", "文件消息"),
    LBSMsg("RC:LBSMsg", "LBSMsg", "位置消息"),
    SightMsg("RC:SightMsg", "SightMsg", "小视频消息"),
    ReferenceMsg("RC:ReferenceMsg", "ReferenceMsg", "引用消息"),
    CombineMsg("RC:CombineMsg", "CombineMsg", "合并转发消息"),
    ;

    private final String type;

    private final String Value;

    private final String description;


    MsgType(String type, String value, String description) {
        this.type = type;
        Value = value;
        this.description = description;
    }

    public String getType() {
        return type;
    }

    public String getValue() {
        return Value;
    }

    public String getDescription() {
        return description;
    }


    public static MsgType fromType(String value) {
        for (MsgType userStatus : values()) {
            if (userStatus.getValue().equals(value)) {
                return userStatus;
            }
        }
        return null;
    }
}
